\section{Modelo}
\label{modelo}

Este trabalho fez uso de simulação para realizar a análise sobre o impacto do uso de estratégias de green computing no makespan e no consumo de energia da grade oportunista. Esta seção descreve o modelo do simulador através dos parâmetros da simulação e do modelo de execução da simulação.

\subsection{Parâmetros da Simulação}

São parâmetros da simulação: o tamanho da grade computacional (número de máquinas), um workload que caracteriza a submissão de tarefas, o histórico de disponibilidade de cada recurso no tempo e a estratégia de green computing utilizada. Na simulação, todas as máquinas são homogêneas apresentando as mesmas características de poder de processamento e consumo de energia.

O workload de submissão de tarefas é um arquivo contendo, em cada linha, o tempo absoluto em segundos em que uma tarefa é submetida e o tempo total de execução daquela tarefa em segundos, como mostra o exemplo~\ref{lst:workload}.

\begin{lstlisting}[caption={Workload de submissão das tarefas}, label={lst:workload}]
1046680270  218
1050208892  1107
1050211992  723
\end{lstlisting}

Estão sendo consideradas apenas tarefas não-paralelas e de curta duração devido a natureza oportunista da grade: um recurso pode se tornar indisponível durante a execução de uma determinada tarefa o que torna a grade mais eficiente para a execução de tarefas que tenham pequena duração e que não precisem de comunicação entre tarefas para avançar (exemplo: MPI), pois um recurso pode ficar indisponível.

O histórico da disponibilidade é dado por um arquivo contendo, em cada linha, um recurso, o tempo absoluto em segundos em que ela se torna disponível, e por quanto tempo aquele recurso ficou disponível para a grade (também em segundos), como mostra o exemplo a seguir:

\begin{lstlisting}[caption={Histórico de disponibilidade}, label={lst:hist}]
V4-linux106 1104904800  1636
V3-linux178 1104904800  3611
V3-linux223 1104904800  3666
\end{lstlisting}

Um recurso é considerado disponível quando a máquina está ligada, porém ociosa: nenhuma atividade ocorre na máquina permitindo que ela possa executar uma tarefa da grade. Esta é a natureza oportunista da grade computacional.

Por fim, o simulador recebe a estratégia de green computing a ser utilizada. Cada estratégia apresenta um tempo de transição, que é o tempo que leva para ir e também para sair de tal estado e um custo de energia da máquina durante tal estado. No período de transição a máquina não pode ser utilizada por tarefas da grade, o que ocasiona um impacto no makespan das tarefas. Ainda, durante o período de transição, a máquina realiza processamento. Este processamento representa um custo maior de energia que é equivalente ao custo de energia de uma máquina durante processamento.

\subsection{Modelo de Execução da Simulação}

O simulador faz uso de um escalonador global \textit{FCFS} que escolhe aleatoriamente uma máquina disponível para executar determinada tarefa. O escalonador faz uso apenas das máquinas disponíveis, e cada máquina pode apenas executar uma tarefa por vez. Se a máquina tornar-se indisponível durante a execução de determinada tarefa, esta tarefa é interrompida e submetida novamente a grade. A interrupção da tarefa não ocasiona perda de trabalho: considera-se a presença de um checkpoint perfeito que irá armazenar o tempo executado da tarefa.

Quando uma máquina está disponível e não há atividade a ser realizada por ela, o simulador faz uso de uma estratégia de economia de energia. O recurso passa por um período de transição, consumindo, durante este tempo, 200 W/s e passa então para um estado em que o gasto de energia é dado pela estratégia utilizada.

Assim, o custo total de energia que uma máquina gasta quando está disponível, porém não executando tarefas da grade é definida na equação~\ref{eq:custo}, onde $tempo_{transic\tilde{a}o}$ é o total em segundos na qual uma máquina passa pelo estado de transição e $tempo_{estrat\acute{e}gia}$ o tempo na qual a máquina fica no estado da estratégia utilizada.
    \begin{equation}
    \label{eq:custo}
    custo_{total} = custo_{transic\tilde{a}o} \times tempo_{transic\tilde{a}o} + custo_{estrat\acute{e}gia} \times tempo_{estrat\acute{e}gia}      
    \end{equation}

O makespan de uma tarefa é definida pela equação~\ref{eq:makespan}, onde $tempo\_final\_de\_execuc\tilde{a}o$ é o instante de tempo em que a tarefa é concluída e $tempo\_inicial\_da\_submiss\tilde{a}o$, o instante de tempo na qual a tarefa foi submetida.
    \begin{equation}
    \label{eq:makespan}
    makespan = tempo\_final\_de\_execuc\tilde{a}o - tempo\_inicial\_da\_submiss\tilde{a}o
    \end{equation}
    
Tais métricas são calculadas e retornadas pelo simulador para cada máquina e tarefa. O custo total de energia da grade e o makespan total das tarefas é definida como a soma de cada um dos custos de energia por máquina e do makespan de cada tarefa submetida.